function LE_val = LE(a, b, alpha, beta, gamma, Im, F, T_trans, T_final, segment)
% LE - 计算给定参数下的最大李雅普诺夫指数
%
% 输入参数：
%   a, b, alpha, beta, gamma, Im, F  - 系统参数
%   T_trans  - 舍去瞬态的时间
%   T_final  - 积分的结束时间
%   segment  - 每段归一化的时间长度
%
% 输出：
%   LE_val   - 计算得到的最大李雅普诺夫指数

optsODE = odeset('RelTol',1e-9,'AbsTol',1e-9);

% 初始状态：主系统 Y0 = [0;0;0]，扰动向量取非零向量（归一化）
Y0 = [0; 0; 0];
v0 = [1; 0; 0]; v0 = v0/norm(v0);
X0 = [Y0; v0];

% 先积分去除瞬态
tspan_trans = [0, T_trans];
[~, X_trans] = ode45(@(t,X) cnn(t, X, a, b, alpha, beta, gamma, Im, F), tspan_trans, X0, optsODE);
X_current = X_trans(end,:)';

% 分段积分并累计扰动向量对数增长
sum_log = 0;
t_current = T_trans;
N_seg = floor((T_final - T_trans) / segment);
for j = 1:N_seg
    tspan_seg = [t_current, t_current + segment];
    [~, X_seg] = ode45(@(t,X) cnn(t, X, a, b, alpha, beta, gamma, Im, F), tspan_seg, X_current, optsODE);
    X_end = X_seg(end,:)';
    % 取出主系统和扰动向量
    Y_end = X_end(1:3);
    v_end = X_end(4:6);
    norm_v = norm(v_end);
    sum_log = sum_log + log(norm_v);
    % 归一化扰动向量，并更新扩展状态
    v_new = v_end / norm_v;
    X_current = [Y_end; v_new];
    t_current = t_current + segment;
end
% 最大李雅普诺夫指数为累计对数增长率除以总时间
LE_val = sum_log / (N_seg * segment);
end
